import axios from 'axios'
import get from '@/store/getters'
import store from '@/store'
// eslint-disable-next-line no-unused-vars
import { MessageBox, Message } from 'element-ui'
// import store from '@/store'
// import { getToken } from '@/utils/auth'

// create an axios instance
//设置默认请求头
const request = axios.create({
    baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
    timeout: 5000 // request timeout
})


// 添加响应拦截器
//* 请求拦截器
request.interceptors.request.use(
        (config) => {
            // 在发送请求之前做些什么
            const { token } = store.state.user
            if (token) {
                config.headers.Authorization = ` ${token}`
            }
            return config //! 必须return, 否则到不了服务器
        },
        (error) => {
            // 对请求错误做些什么
            return Promise.reject(error)
        }
    )
    //* 响应拦截器   所有接口返回数据先经过响应拦截器  后到达各个调用接口的位置
request.interceptors.response.use(
    (response) => {
        if (response.data.code === 1) {
            //* 统一给一个提示
            Message.error(response.data.msg)
            return Promise.reject(new Error(response.data.msg)) //* 错误信息外面--包一个错误对象 有助于在catch捕获错误信息
        }
        return response
    },
    (error) => {
        console.dir(error)

        return Promise.reject(error)
    }
)
export default request